package com.wuage.domain.model;

import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

/**
 * 权限表(UacPermission)表实体类
 *
 * @Author: makejava
 * @Date: 2021-09-27 17:00:43
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "uac_permission", autoResultMap = true)
public class UacPermission {

    /**
     * 主键Id
     **/
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 权限类型 MENU or BUTTON
     **/
    @TableField("type")
    private String type;

    /**
     * 级别 仅用于菜单 1、2、3代表一二三级菜单
     **/
    @TableField("level")
    private Integer level;

    /**
     * 权限名字
     **/
    @TableField("menu_name")
    private String menuName;

    /**
     * 上级权限id
     **/
    @TableField("parent_id")
    private Long parentId;

    /**
     * 描述
     **/
    @TableField("description")
    private String description;

    /**
     * 按钮权限标志 菜单可为空
     **/
    @TableField("permit")
    private String permit;

    /**
     * 前端路由
     **/
    @TableField("front_url")
    private String frontUrl;

    /**
     * 图标url
     **/
    @TableField("icon_url")
    private String iconUrl;

    /**
     * 创建时间
     **/
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     **/
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除
     **/
    @TableField("deleted")
    private Boolean deleted;

    /**
     * 租户id
     **/
    @TableField("tenant_id")
    private Long tenantId;

    /**
     * 租户名字
     **/
    @TableField("tenant_name")
    private String tenantName;

    @TableField(exist = false)
    private List<UacPermission> childPermission;
}